.TH std::basic_format_context 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_format_context \- std::basic_format_context

.SH Synopsis
   Defined in header <format>
   template< class OutputIt, class CharT >                            \fB(1)\fP \fI(since C++20)\fP
   class basic_format_context;
   using format_context = basic_format_context</* unspecified */,     \fB(2)\fP \fI(since C++20)\fP
   char>;
   using wformat_context = basic_format_context</* unspecified */,    \fB(3)\fP \fI(since C++20)\fP
   wchar_t>;

   Provides access to formatting state consisting of the formatting arguments and the
   output iterator.

   2) The unspecified template argument is an output iterator that appends to
   std::string, such as std::back_insert_iterator<std::string>. Implementations
   typically use an iterator to type-erased buffer type that supports appending to any
   contiguous and resizable container.
   3) The unspecified template argument is an output iterator that appends to
   std::wstring.

   The behavior is undefined if OutputIt does not model std::output_iterator<const
   CharT&>.

   A program that declares an explicit or partial specialization of
   std::basic_format_context is ill-formed, no diagnostic required.

.SH Member types

   Type      Definition
   iterator  OutputIt
   char_type CharT

.SH Member alias templates

   Type              Definition
   formatter_type<T> std::formatter<T, CharT>

.SH Member functions

   arg        returns the argument at the given index
              \fI(public member function)\fP
   locale     returns the locale used for locale-specific formatting
              \fI(public member function)\fP
   out        returns the iterator to output buffer
              \fI(public member function)\fP
   advance_to advances the output iterator to the given position
              \fI(public member function)\fP

std::basic_format_context::arg

   std::basic_format_arg<basic_format_context> arg( std::size_t id ) const;

   Returns a std::basic_format_arg holding the id-th argument in args, where args is
   the parameter pack or std::basic_format_args object passed to the formatting
   function.

   If id is not less than the number of formatting arguments, returns a
   default-constructed std::basic_format_arg (holding a std::monostate object).

std::basic_format_context::locale

   std::locale locale();

   Returns the locale passed to the formatting function, or a default-constructed
   std::locale if the formatting function does not take a locale.

std::basic_format_context::out

   iterator out();

   Returns the iterator to the output buffer. The result is move-constructed from the
   stored iterator.

std::basic_format_context::advance_to

   void advance_to( iterator it );

   Move assigns it to the stored output iterator. After a call to advance_to, the next
   call to out() will return an iterator with the value that it had before the
   assignment.

.SH Example

    This section is incomplete
    Reason: no example

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to             Behavior as published              Correct behavior
   LWG 3567 C++20      basic_format_context does not work move-only   made to move
                       iterator types                                 iterators
   LWG 3975 C++20      user specialization of basic_format_context    disallowed
                       was allowed

.SH Category:
     * Todo no example
